package com.eastfair.venueservice.vo;

import com.eastfair.annotation.annotation.vo.VoInfo;
import com.eastfair.annotation.model.BaseVoGroupClass;
import com.eastfair.venueservice.dto.ServiceItemDTO;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.math.BigDecimal;

/**
 * <p>
 * 实体类
 * 服务项明细
 * </p>
 *
 * @author linan
 * @since 2022-07-13
 */
@Data
@ApiModel(value = "ServiceItemDetailVO", description = "服务项明细")
public class ServiceItemDetailVO implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "主键")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @VoInfo(groups = {BaseVoGroupClass.all.class})
    private Long id;
    /**
     * 服务项id
     */
    @ApiModelProperty(value = "服务项id")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private Long serviceItemId;
    /**
     * 服务分类id
     */
    @ApiModelProperty(value = "服务分类id")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private Long serviceCategoryId;
    /**
     * 服务规格id
     */
    @ApiModelProperty(value = "服务规格id")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private Long serviceSpecsId;
    /**
     * 服务单价
     */
    @ApiModelProperty(value = "服务单价")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private BigDecimal unitPrice;
    /**
     * 服务成本
     */
    @ApiModelProperty(value = "服务成本")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private BigDecimal costPrice;
    /**
     * 附加费
     */
    @ApiModelProperty(value = "附加费")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private BigDecimal surcharge;
    /**
     * 税率
     */
    @ApiModelProperty(value = "税率")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private BigDecimal taxRate;
    /**
     * 展前折扣
     */
    @ApiModelProperty(value = "展前折扣")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private BigDecimal preExhibitionDiscount;
    /**
     * 现场折扣
     */
    @ApiModelProperty(value = "现场折扣")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private BigDecimal onSiteDiscount;
    /**
     * 备注
     */
    @ApiModelProperty(value = "备注")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @Size(max = 255, message = "备注长度不能超过255")
    private String remark;
    /**
     * 库存编码
     */
    @ApiModelProperty(value = "库存编码")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @Size(max = 255, message = "库存编码长度不能超过255")
    private String inventoryCode;
    /**
     * 服务库存
     */
    @ApiModelProperty(value = "服务库存")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private BigDecimal inventoryNum;
    /**
     * 服务预警值
     */
    @ApiModelProperty(value = "服务预警值")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private BigDecimal earlyWarningValue;

    /**
     * 服务分类名称
     */
    @ApiModelProperty(value = "服务分类名称")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private String serviceCategoryName;

    /**
     * 服务规格名称
     */
    @ApiModelProperty(value = "服务规格名称")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private String serviceSpecsName;

    /**
     * 折扣
     */
    @ApiModelProperty(value = "折扣")
    private BigDecimal discount;

    /**
     * 预订数量
     */
    @ApiModelProperty(value = "预订数量")
    private Long bookingNum;
    /**
     * 服务项名称
     */
    @ApiModelProperty(value = "服务项名称")
    private String serviceName;
    /**
     * 计量单位 字典维护
     */
    @ApiModelProperty(value = "计量单位 字典维护")
    private String calUnit;
}
